#!/bin/bash

# 输出带颜色的文本
green() {
    echo -e "\033[32m$1\033[0m"
}

yellow() {
    echo -e "\033[33m$1\033[0m"
}

red() {
    echo -e "\033[31m$1\033[0m"
}

# 创建虚拟环境
create_venv() {
    green "创建Python虚拟环境..."
    python3 -m venv venv
    if [ $? -ne 0 ]; then
        red "创建虚拟环境失败，请确保已安装Python 3.6+"
        exit 1
    fi
    green "虚拟环境创建成功！"
}

# 激活虚拟环境
activate_venv() {
    yellow "激活虚拟环境..."
    if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
        source venv/Scripts/activate
    else
        source venv/bin/activate
    fi
    if [ $? -ne 0 ]; then
        red "激活虚拟环境失败"
        exit 1
    fi
    green "虚拟环境激活成功！"
}

# 安装依赖
install_deps() {
    yellow "安装项目依赖..."
    pip install -r requirements.txt
    if [ $? -ne 0 ]; then
        red "安装依赖失败"
        exit 1
    fi
    green "依赖安装成功！"
}

# 设置环境变量
setup_env() {
    if [ ! -f .env ]; then
        yellow "创建.env文件..."
        cp .env.example .env
        green ".env文件已创建，请编辑填入您的API密钥"
        yellow "请编辑.env文件，填入您的API密钥后再继续"
        read -p "按Enter继续..." 
    else
        green ".env文件已存在"
    fi
}

# 启动应用
run_app() {
    green "启动应用..."
    python main.py
}

# 主流程
main() {
    green "========== 商家评分决策AI系统安装脚本 =========="
    
    # 检查虚拟环境是否存在
    if [ ! -d "venv" ]; then
        create_venv
    else
        green "虚拟环境已存在"
    fi
    
    # 激活虚拟环境
    activate_venv
    
    # 安装依赖
    install_deps
    
    # 设置环境变量
    setup_env
    
    # 询问是否立即启动应用
    read -p "是否立即启动应用？(y/n): " start_now
    if [[ $start_now == "y" || $start_now == "Y" ]]; then
        run_app
    else
        green "安装完成！可以通过执行 'source venv/bin/activate && python main.py' 启动应用"
    fi
}

# 执行主流程
main 